How do you pronouce the name?
Like Caesar, but with a Py instead of a C!
What does ancient Romans have to do with High Performance Computing?
I was going through a small Dr. Who phase! In one episode (The Pandorica Opens) the following dialog is produced:
(Lots of spaceships are buzzing around in the sky.)
RIVER: Doctor, listen to me. Everything that ever hated you is coming here tonight. You can’t win this. You can’t even fight it. Doctor, this once, just this one time, please, you have to run.
DOCTOR: Run where?
RIVER: Fight how?
DOCTOR: With the greatest military machine in the history of the universe.
AMY: What is? The Daleks?
DOCTOR: No. No, no, no, no, no. The Romans.
This got me thinking, what made the Romans special?
What made the ancient Roman Army special and what does it have to do with High Performance Computing?
Like most militaries, the Romans had a specific structure. The leader of Rome was the Caesar, directly under his command was the Roman Legion which was made up of individual Legionaries.
When you looks at an image of a Legion what does it remind you of?
It looks like a GPU SM (figure 2)!
GPU? I thought this was HPC!
True, but this was my inspiration.
GPUs are optimized for computational performance, but many people program on HPC’s. We were also part of a parallel programming summer school so why not try to combine the two ideas!
During our summer internship at Los Alamos National Lab, we were using an HPC to study the spread of diseases in South America using a wide range of data and testing the accuracy of different models. This was not being done efficiently, and then the idea for Pyaesar struck. (figure 3)
The Pyaesar API (Caesar) distributes user code to different nodes (Legions) and then spawns individual processes (Legionnaire) to run a set of commands. Over time we built upon this idea and developed Pyaesar.